package com.hb.core.pojo.project.proj.entity;

import cn.hutool.core.collection.CollUtil;
import com.hb.core.pojo.RoleDataAuthEntity;
import com.hb.core.pojo.enums.RoleDataAuthEnum;
import com.hb.core.pojo.parent.MPPageEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.fzzn.core.util.Enums;

import java.util.List;

/**
 * 项目列表查询条件参数接收对象
 *
 * @author zhaojk
 */
@Setter
@Getter
@ApiModel(value = "项目列表查询条件", description = "项目列表查询条件参数接收对象")
public class QueryProject extends MPPageEntity {
    /**
     * 数据权限对象
     */
    private RoleDataAuthEntity dataAuth;

    @ApiModelProperty(value = "项目名称")
    private String projectName;

    @ApiModelProperty(value = "项目分类, 1: 工程, 2: 货物, 3: 服务(关联字典)")
    private String projectType;

    @ApiModelProperty(value = "项目分类二级, 关联字典")
    private String projectType2;

    @ApiModelProperty(value = "招标方式: 1: 公开, 2: 邀请")
    private Integer commonType;

    @ApiModelProperty(value = "资格审查方式(1: 预审, 2: 后审)")
    private Integer qualWay;

    @ApiModelProperty(value = "标段状态, 关联字典")
    private Long sectionStatus;

    /* 数据权限设置条件 start */
    @ApiModelProperty(value = "企业id")
    private List<Long> orgIds;

    @ApiModelProperty(value = "用户id")
    private List<Long> userIds;
    /* 数据权限设置条件 end */

    /**
     * 用户类型(1: 超级管理员，2：企业管理员，3：常规用户)
     */
    private Integer userType;

    /**
     * 查询时是否携带标段参数(1: 是, 2: 否)
     *
     * @see org.fzzn.core.model.enums.LogicEnum
     */
    private Integer withSections;

    /**
     * 项目类型
     */
    @ApiModelProperty(value = "招标方式, 关联字典(招标, 询价等)")
    private Integer bidWay;

    /**
     * 项目模块 1 建设工程 2 政府采购 3 企业采购
     */
    @ApiModelProperty(value = "项目模块 1 建设工程 2 政府采购 3 企业采购")
    private Integer projectModule;

    /**
     * 查询条件: 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String createName;

    /**
     * 查询条件: 企业名称
     */
    @ApiModelProperty(value = "企业名称")
    private String orgName;

    // 设置数据权限的查询条件 start
    public void addUserId(Long... userId) {
        if (userIds == null) {
            userIds = CollUtil.list(false);
        }
        CollUtil.addAll(userIds, userId);
    }

    public void addUserId(List<Long> userIds) {
        if (this.userIds == null) {
            this.userIds = CollUtil.list(false);
        }
        this.userIds.addAll(userIds);
    }

    public void addOrgId(Long... orgId) {
        if (orgIds == null) {
            orgIds = CollUtil.list(false);
        }
        CollUtil.addAll(orgIds, orgId);
    }

    public void addOrgId(List<Long> orgIds) {
        if (this.orgIds == null) {
            this.orgIds = CollUtil.list(false);
        }
        this.orgIds.addAll(orgIds);
    }
    // 设置数据权限的查询条件 end
}
